Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

415
Views
Configuración de Tensorflow en RStudio/ R | CentOS

Durante los últimos 5 días, estoy tratando de hacer que los paquetes de Keras/Tensorflow funcionen en R. Estoy usando RStudio para la instalación y he usado conda , miniconda , virtualenv pero al final falla cada vez. Instalar una biblioteca no debería ser una pesadilla, especialmente cuando hablamos de R ( uno de los mejores lenguajes estadísticos ) y TensorFlow ( una de las mejores bibliotecas de aprendizaje profundo ). ¿Alguien puede compartir una forma confiable de instalar Keras/Tensorflow en CentOS 7?

Los siguientes son los pasos que estoy usando para instalar tensorflow en RStudio.

Dado que RStudio simplemente se bloquea cada vez que ejecuto tensorflow::tf_config() , no tengo forma de verificar qué está fallando.

ingrese la descripción de la imagen aquí

 devtools::install_github("rstudio/reticulate") devtools::install_github("rstudio/keras") # This package also installs tensorflow library(reticulate) reticulate::install_miniconda() reticulate::use_miniconda("r-reticulate") library(tensorflow) tensorflow::tf_config() **# Crashes at this point** sessionInfo() R version 3.6.0 (2019-04-26) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: CentOS Linux 7 (Core) Matrix products: default BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] tensorflow_2.7.0.9000 keras_2.7.0.9000 reticulate_1.22-9000 loaded via a namespace (and not attached): [1] Rcpp_1.0.7 lattice_0.20-45 png_0.1-7 zeallot_0.1.0 [5] rappdirs_0.3.3 grid_3.6.0 R6_2.5.1 jsonlite_1.7.2 [9] magrittr_2.0.1 tfruns_1.5.0 rlang_0.4.12 whisker_0.4 [13] Matrix_1.3-4 generics_0.1.1 tools_3.6.0 compiler_3.6.0 [17] base64enc_0.1-3

Actualización 1 La única forma en que RStudio no falla al instalar tensorflow es ejecutando los siguientes pasos:

Primero, creé un nuevo entorno virtual usando conda

 conda create --name py38 python=3.8.0 conda activate py38 conda install tensorflow=2.4

Luego, desde RStudio, instalé reticulate y activé el entorno virtual que creé anteriormente usando conda

 devtools::install_github("rstudio/reticulate") library(reticulate) reticulate::use_condaenv("/root/.conda/envs/py38", required = TRUE) reticulate::use_python("/root/.conda/envs/py38/bin/python3.8", required = TRUE) reticulate::py_available(initialize = TRUE) ts <- reticulate::import("tensorflow")

Tan pronto como intento importar tensorflow en RStudio, carga la biblioteca /lib64/libstdc++.so.6 en lugar de /root/.conda/envs/py38/lib/libstdc++.so.6 y aparece el siguiente error:

 Error in py_module_import(module, convert = convert) : ImportError: Traceback (most recent call last): File "/root/.conda/envs/py38/lib/python3.8/site-packages/tensorflow/python/pywrap_tensorflow.py", line 64, in <module> from tensorflow.python._pywrap_tensorflow_internal import * File "/home/R/x86_64-redhat-linux-gnu-library/3.6/reticulate/python/rpytools/loader.py", line 39, in _import_hook module = _import( ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/.conda/envs/py38/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so) Failed to load the native TensorFlow runtime. See https://www.tensorflow.org/install/errors for some common reasons and solutions. Include the entire stack trace above this error message when asking for help.

Esto es lo que hay dentro /lib64/libstdc++.so.6

 > strings /lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBC_2.3 GLIBC_2.2.5 GLIBC_2.14 GLIBC_2.4 GLIBC_2.3.2 GLIBCXX_DEBUG_MESSAGE_LENGTH

Para resolver el problema de la biblioteca, agregué la ruta de la libstdc++.so.6 que tiene GLIBCXX_3.4.20 en RStudio.

 system('export LD_LIBRARY_PATH=/root/.conda/envs/py38/lib/:$LD_LIBRARY_PATH')

y también

 Sys.setenv("LD_LIBRARY_PATH" = "/root/.conda/envs/py38/lib")

Pero aún recibo el mismo error ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' . De alguna manera, RStudio todavía carga /lib64/libstdc++.so.6 primero en lugar de /root/.conda/envs/py38/lib/libstdc++.so.6

En lugar de RStudio , si ejecuto los pasos anteriores en la consola R , también obtengo exactamente el mismo error.

Actualización 2: Aquí se publica una solución

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Quizás mis intentos fallidos ayuden a alguien más a resolver este problema; mi acercamiento:

  • arranque una máquina virtual CentOS 7 limpia
  • instalar R y algunas dependencias
 sudo yum install epel-release sudo yum install R sudo yum install libxml2-devel sudo yum install openssl-devel sudo yum install libcurl-devel sudo yum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage mesa-libGL libXScrnSaver
  • Descargue e instale Anaconda a través del script de instalación de Linux
  • Crear un nuevo entorno conda
 conda init conda create --name tf conda activate tf conda install -c conda-forge tensorflow

**Desde dentro de este conda env puede importar tensorflow en python sin error; ahora para acceder a tf a través de R

  • instalar un gcc actualizado a través de devtoolset
 sudo yum install centos-release-scl sudo yum install devtoolset-7-gcc*
  • intente usar tensorflow en R a través del paquete reticulado
 scl enable devtoolset-7 R install.packages("remotes") remotes::install_github('rstudio/reticulate') reticulate::use_condaenv("tf", conda = "~/anaconda3/bin/conda") reticulate::repl_python() # This works as expected but the command "import tensorflow" crashes R # Error: *** caught segfault *** address 0xf8, cause 'memory not mapped' # Also tried: install.packages("devtools") devtools::install_github('rstudio/tensorflow') devtools::install_github('rstudio/keras') library(tensorflow) install_tensorflow() # "successful" tensorflow::tf_config() # Error: *** caught segfault *** address 0xf8, cause 'memory not mapped'
  • prueba versiones anteriores de tensorflow/keras
 devtools::install_github('rstudio/tensorflow@v2.4.0') devtools::install_github('rstudio/keras@v2.4.0') library(tensorflow) tf_config() # Error: *** caught segfault *** address 0xf8, cause 'memory not mapped'
  • Pruebe una versión actualizada de R (v4.0)
 # deactivate conda sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm export R_VERSION=4.0.0 curl -O https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm sudo yum install R-${R_VERSION}-1-1.x86_64.rpm scl enable devtoolset-7 /opt/R/4.0.0/bin/R install.packages("devtools") devtools::install_github('rstudio/reticulate') reticulate::use_condaenv("tf", conda = "~/anaconda3/bin/conda") reticulate::repl_python() # 'import tensorflow' resulted in "core dumped"

Supongo que el problema es con R/CentOS, ya que normalmente puede importar y usar tensorflow a través de Python, pero no estoy seguro de qué más probar.

También me gustaría decir que no tuve problemas con Ubuntu (que es específicamente compatible con tensorflow, junto con macOS y Windows), y encontré estos documentos que podrían ser de ayuda: https://wiki.hpcc.msu. edu/display/ITH/Instalación+TensorFlow+usando+anaconda / https://wiki.hpcc.msu.edu/pages/viewpage.action?pageId=22709999

over 4 years ago · Santiago Trujillo Report

0

Me tomó más de 15 días y finalmente resolví este problema.

Inicie una máquina virtual CentOS 7 limpia, instale R y dependencias (tomado de la respuesta de Jared):

 yum install epel-release yum install R yum install libxml2-devel yum install openssl-devel yum install libcurl-devel yum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage mesa-libGL libXScrnSaver

Ahora, crea un entorno conda.

 yum install conda conda clean -a # Clean cache and remove old packages, if you already have conda installed # Install all the packages together and let conda handle versioning. It is important to give a Python version while setting up the environment. Since Tensorflow supports python 3.9.0, I have used this version conda create -y -n "tf" python=3.9.0 ipython tensorflow keras r-essentials r-reticulate r-tensorflow conda activate tf

Abra un nuevo puerto ( 7878 o elija cualquier número de puerto que desee) en el servidor para acceder a RStudio con nuevas bibliotecas de entorno conda

 iptables -A INPUT -p tcp --dport 7878 -j ACCEPT /sbin/service iptables save

luego inicie RStudio de la siguiente manera:

 /usr/lib/rstudio-server/bin/rserver \ --server-daemonize=0 \ --www-port 7878 \ --rsession-which-r=$(which R) \ --rsession-ld-library-path=$CONDA_PREFIX/lib

Tendrá su entorno anterior intacto en el puerto predeterminado 8787 y un nuevo entorno con Tensorflow y Keras en el 7878 .

El siguiente código ahora funciona bien en RStudio

 install.packages("reticulate") install.packages("tensorflow") library(reticulate) library(tensorflow) ts <- reticulate::import("tensorflow")
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!